package com.atguigu.gulimall.order.vo;

import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 商品订单页确认数据
 * @author gcq
 * @Create 2021-01-05
 */
public class OrderConfirmVo {
    /**
     * 收获地址 ums_member_receive_address
     */
    @Getter @Setter
    List<MemberAddressVo> address;

    /**
     * 多个购物项
     */
    @Getter @Setter
    List<OrderItemVo> item;

    // 发票记录

    /**
     * 优惠卷信息
     */
    @Getter @Setter
    Integer integration;

    /**
     * 订单总额
     */
    BigDecimal total;

    public BigDecimal getTotal() {
        BigDecimal sum = new BigDecimal("0");
        // 计算多个购物项价格
        if (item != null) {
            for (OrderItemVo orderItemVo : item) {
                // 价格 * 数量
                BigDecimal multiply = orderItemVo.getPrice().multiply(new BigDecimal(orderItemVo.getCount().toString()));
                sum = sum.add(multiply);
            }
        }
        return sum;
    }

    /**
     * 商品是否有库存
     */
    @Getter @Setter
    Map<Long,Boolean> stocks;

    /**
     * 应付价格
     */
    BigDecimal payPrice;
    public BigDecimal  getPayPrice() {
        BigDecimal sum = new BigDecimal("0");
        if(item != null) {
            for (OrderItemVo orderItemVo : item) {
                BigDecimal multiply = orderItemVo.getPrice().multiply(new BigDecimal(orderItemVo.getCount().toString()));
                sum = sum.add(multiply);
            }
        }
        return sum;
    }

    /**
     * 商品购物项数量
     */
    @Setter
    private Integer count;
    /**
     * 商品购物项数量
     * @return
     */
    public Integer getCount() {
        Integer i = 0;
        if (item != null) {
            for (OrderItemVo orderItemVo : item) {
                i+=orderItemVo.getCount();
            }
        }
        return i;
    }

    /**
     * 接口幂等性token
     */
    @Getter @Setter
    private String orderToken;



}